package view;

import javax.swing.JPanel;
import javax.swing.JLabel;

import java.awt.Font;

import javax.swing.JTextField;
import javax.swing.JButton;

import dao.ArtikelDAO;
import dao.LieferantDAO;
import dao.WarengruppeDAO;
import model.Artikel;
import model.Lieferant;
import model.Warengruppe;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;

public class ArtikelPanel extends JPanel {
	private JLabel lblLieferantenverwaltung;
	private JLabel lblId;
	private JTextField txtID;
	private JButton btnSuchen;
	private JLabel lblName;
	private JTextField txtName;
	private JButton btnAnlegen;
	private JButton btnndern;
	private JButton btnLschen;
	private JLabel lblPreis;
	private JTextField txtPreis;
	private JLabel lblLieferant;
	private JLabel lblWarengruppe;
	private JComboBox comboBoxLieferant;
	private JComboBox comboBoxWarengruppe;

	/**
	 * Create the panel.
	 */
	public ArtikelPanel() {
		setLayout(null);
		
		this.lblLieferantenverwaltung = new JLabel("Artikelverwaltung");
		this.lblLieferantenverwaltung.setFont(new Font("Tahoma", Font.BOLD, 17));
		this.lblLieferantenverwaltung.setBounds(10, 11, 209, 31);
		add(this.lblLieferantenverwaltung);
		
		this.lblId = new JLabel("ID:");
		this.lblId.setBounds(20, 57, 46, 14);
		add(this.lblId);
		
		this.txtID = new JTextField();
		this.txtID.setBounds(101, 54, 86, 20);
		add(this.txtID);
		this.txtID.setColumns(10);
		
		this.btnSuchen = new JButton("suchen");
		this.btnSuchen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				do_btnSuchen_actionPerformed(e);
			}
		});
		this.btnSuchen.setBounds(201, 53, 89, 23);
		add(this.btnSuchen);
		
		this.lblName = new JLabel("Name:");
		this.lblName.setBounds(20, 87, 46, 14);
		add(this.lblName);
		
		this.txtName = new JTextField();
		this.txtName.setBounds(101, 84, 86, 20);
		add(this.txtName);
		this.txtName.setColumns(10);
		
		this.btnAnlegen = new JButton("anlegen");
		this.btnAnlegen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				do_btnAnlegen_actionPerformed(arg0);
			}
		});
		this.btnAnlegen.setBounds(20, 216, 89, 23);
		add(this.btnAnlegen);
		
		this.btnndern = new JButton("\u00E4ndern");
		this.btnndern.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				do_btnndern_actionPerformed(e);
			}
		});
		this.btnndern.setBounds(119, 216, 89, 23);
		add(this.btnndern);
		
		this.btnLschen = new JButton("l\u00F6schen");
		this.btnLschen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				do_btnLschen_actionPerformed(e);
			}
		});
		this.btnLschen.setBounds(218, 216, 89, 23);
		add(this.btnLschen);
		
		this.lblPreis = new JLabel("Preis");
		this.lblPreis.setBounds(20, 115, 46, 14);
		add(this.lblPreis);
		
		this.txtPreis = new JTextField();
		this.txtPreis.setColumns(10);
		this.txtPreis.setBounds(101, 112, 86, 20);
		add(this.txtPreis);
		
		this.lblLieferant = new JLabel("Lieferant");
		this.lblLieferant.setBounds(20, 140, 46, 14);
		add(this.lblLieferant);
		
		this.lblWarengruppe = new JLabel("Warengruppe");
		this.lblWarengruppe.setBounds(20, 166, 89, 14);
		add(this.lblWarengruppe);
		
		this.comboBoxLieferant = new JComboBox();
		this.comboBoxLieferant.setModel(new DefaultComboBoxModel(LieferantDAO.getAll().toArray()));
		this.comboBoxLieferant.setBounds(101, 137, 139, 20);
		add(this.comboBoxLieferant);
		
		this.comboBoxWarengruppe = new JComboBox();
		this.comboBoxWarengruppe.setBounds(101, 163, 139, 20);
		this.comboBoxWarengruppe.setModel(new DefaultComboBoxModel(WarengruppeDAO.getAll().toArray()));

		add(this.comboBoxWarengruppe);

	}
	protected void do_btnAnlegen_actionPerformed(ActionEvent arg0) {
		Artikel a=new Artikel();
		a.setId(Integer.parseInt(txtID.getText()));
		a.setBezeichnung(txtName.getText());
		a.setPreis(Double.parseDouble(txtPreis.getText()));
		a.setLieferant((Lieferant)comboBoxLieferant.getSelectedItem());
		a.setWarengruppe((Warengruppe)comboBoxWarengruppe.getSelectedItem());
		ArtikelDAO.save(a);
	}
	protected void do_btnSuchen_actionPerformed(ActionEvent e) {
		Artikel a=ArtikelDAO.get(Integer.parseInt(txtID.getText()));
		txtName.setText(a.getBezeichnung());
		txtPreis.setText(a.getPreis()+"");
		comboBoxLieferant.setSelectedItem(a.getLieferant());
		comboBoxWarengruppe.setSelectedItem(a.getWarengruppe());
	}
	
	protected void do_btnLschen_actionPerformed(ActionEvent e) {
		ArtikelDAO.delete(Integer.parseInt(txtID.getText()));
	}
	
	protected void do_btnndern_actionPerformed(ActionEvent e) {
		Artikel a=new Artikel();
		a.setId(Integer.parseInt(txtID.getText()));
		a.setBezeichnung(txtName.getText());
		a.setPreis(Double.parseDouble(txtPreis.getText()));
		a.setLieferant((Lieferant)comboBoxLieferant.getSelectedItem());
		a.setWarengruppe((Warengruppe)comboBoxWarengruppe.getSelectedItem());
		ArtikelDAO.update(a);
	}
}
